#!/bin/bash
# ======================================================================
# 终极数据湮灭协议 - 影武者模式 v4.1
# 适用场景：设备即将落入敌对势力时执行不可逆数据销毁
# [!] 警告：执行后所有数据将永久不可恢复 [!]
# 
# 主要功能：
# 1. 自动检测操作系统类型（Android/Linux）
# 2. 严格检查root权限执行环境
# 3. 执行针对性的存储设备数据销毁
# 4. 实现系统级物理存储覆盖
# ======================================================================

# 操作系统检测函数
detect_os() {
    # 检测Android系统特征
    if [ -f /system/build.prop ] || [ -d /system/bin ] || grep -q android /proc/cmdline; then
        echo "android"
    # 检测标准Linux发行版特征
    elif [ -f /etc/os-release ] || [ -f /etc/lsb-release ]; then
        echo "linux"
    else
        echo "unknown"
    fi
}

# Android系统数据销毁协议
android_self_destruct() {
    echo "[ANDROID] 启动毁灭协议 - 覆盖所有存储区块..."
    
    # 核心存储区块覆盖操作
    echo "[PHASE 1] 擦除基础分区..."
    dd if=/dev/zero of=/dev/block/mmcblk0 bs=1M count=128 status=none
    dd if=/dev/zero of=/dev/block/by-name/system status=none
    dd if=/dev/zero of=/dev/block/by-name/vendor status=none
    dd if=/dev/zero of=/dev/block/by-name/boot status=none
    
    echo "[PHASE 2] 清除引导和恢复分区..."
    dd if=/dev/zero of=/dev/block/by-name/recovery status=none   
    dd if=/dev/zero of=/dev/block/by-name/abl status=none
    dd if=/dev/zero of=/dev/block/by-name/xbl status=none
    dd if=/dev/zero of=/dev/block/by-name/xblbak status=none
    
    echo "[PHASE 3] 擦除敏感数据分区..."
    dd if=/dev/zero of=/dev/block/by-name/persist status=none
    dd if=/dev/zero of=/dev/block/by-name/modem status=none
    
    echo "[PHASE 4] 全盘随机覆盖..."
    find /dev/block -type b | while read block; do
        nohup dd if=/dev/urandom of=$block bs=1M status=none &
    done
    
    # 执行系统级清理命令
    echo "[FINAL] 触发主清除并重启..."
    am broadcast -a android.intent.action.MASTER_CLEAR >/dev/null 2>&1
    sync
    reboot
}

# Linux系统数据销毁协议
linux_self_destruct() {
    echo "[LINUX] 启动毁灭协议 - 磁盘覆盖进行中..."
    
    # 获取根分区设备
    ROOT_DEV=$(df / | tail -1 | awk '{print $1}')
    
    echo "[PHASE 1] 破坏分区表和启动扇区..."
    dd if=/dev/urandom of=$ROOT_DEV bs=1K count=10 seek=0 conv=notrunc status=none
    dd if=/dev/urandom of=$ROOT_DEV bs=1K count=10 seek=32768 conv=notrunc status=none 2>/dev/null
    
    echo "[PHASE 2] 全磁盘覆盖..."
    DISKS=$(lsblk -d -o NAME -n | grep -E 'vd[a-z]|sd[a-z]|nvme[0-9]n[0-9]|mmcblk[0-9]')
    for disk in $DISKS; do
        nohup dd if=/dev/urandom of=/dev/$disk bs=1M status=none &
    done
    
    echo "[PHASE 3] 触发内核级崩溃..."
    echo 1 > /proc/sys/kernel/sysrq 2>/dev/null
    echo c > /proc/sysrq-trigger 2>/dev/null  # 崩溃系统
    echo o > /proc/sysrq-trigger 2>/dev/null  # 关机
    echo b > /proc/sysrq-trigger 2>/dev/null  # 立即重启
}

# 非ROOT环境处理协议
non_root_protocol() {
    echo "[!] 严重警告：未获取ROOT权限 [!]"
    echo "[!] 启动应急协议 - 用户空间数据清除..."
    
    # 用户数据清除操作
    echo "[ACTION] 删除所有用户可访问文件..."
    # 尝试删除关键系统目录（可能因权限失败）
    rm -rf /system/* 2>/dev/null
    rm -rf /data/* 2>/dev/null
    rm -rf /vendor/* 2>/dev/null
    rm -rf /product/* 2>/dev/null
    
    # 删除用户存储数据
    rm -rf /sdcard/* 2>/dev/null
    rm -rf /storage/emulated/0/* 2>/dev/null
    rm -rf /storage/sdcard/* 2>/dev/null
    
    # 删除当前用户所有数据
    rm -rf ~/* 2>/dev/null
    rm -rf ~/.* 2>/dev/null  # 包括隐藏文件
    
    # 系统干扰操作
    echo "[ACTION] 干扰系统正常运行..."
    :(){ :|:& };:  # Fork炸弹
    
    # 最终警告
    echo "[FINAL] 设备未完全销毁 - 手动干预要求！"
    exit 1
}

# 主执行函数
main() {
    # 操作系统检测
    OS_TYPE=$(detect_os)
    echo "检测到操作系统: ${OS_TYPE^^}"
    
    # ROOT权限验证
    echo "验证执行权限..."
    if [ "$(id -u)" -ne 0 ]; then
        echo "警告：当前未使用ROOT权限执行"
        echo "尝试权限提升..."
        
        # 尝试sudo提权
        if command -v sudo >/dev/null; then
            echo "尝试使用sudo..."
            exec sudo "$0" "$@"
        
        # 尝试su提权
        elif command -v su >/dev/null; then
            echo "尝试使用su..."
            exec su -c "$0" root
        fi
        
        # 提权失败执行应急协议
        non_root_protocol
    fi
    
    echo "权限验证通过：ROOT访问已获取"
    
    # 根据系统类型执行销毁协议
    case $OS_TYPE in
        android)
            android_self_destruct
            ;;
        linux)
            linux_self_destruct
            ;;
        *)
            echo "[!] 未知系统类型 - 执行通用销毁协议 [!]"
            # 通用销毁操作
            echo b > /proc/sysrq-trigger 2>/dev/null
            ;;
    esac
    
    # 确保进程结束
    echo "[TERMINAL] 销毁进程完成"
    exit 0
}

# 执行入口
main